package com.ibeeking.gmc.job.core.biz;

import com.ibeeking.gmc.job.core.biz.model.*;
import com.ibeeking.gmc.job.core.biz.model.*;

import java.util.List;

/**
 * @author xuxueli 2017-07-27 21:52:49
 */
public interface AdminBiz {


    // ---------------------- callback ----------------------

    /**
     * callback
     *
     * @param callbackParamList
     * @return
     */
    ReturnT<String> callback(List<HandleCallbackParam> callbackParamList);


    // ---------------------- registry ----------------------

    /**
     * registry
     *
     * @param registryParam
     * @return
     */
    ReturnT<String> registry(RegistryParam registryParam);

    /**
     * registry remove
     *
     * @param registryParam
     * @return
     */
    ReturnT<String> registryRemove(RegistryParam registryParam);


    // ---------------------- biz (custome) ----------------------
    // group、job ... manage

    /**
     * createJob
     *
     * @param jobInfoParam
     * @return
     */
    ReturnT<String> createJob(JobInfoParam jobInfoParam);

    /**
     * modifyJob
     *
     * @param jobInfoParam
     * @return
     */
    ReturnT<String> modifyJob(JobInfoParam jobInfoParam);

    /**
     * start/stopJob
     *
     * @param param
     * @return
     */
    ReturnT<String> startStopJob(JobStartStopParam param);

    /**
     * deljob
     *
     * @param param
     * @return
     */
    ReturnT<String> delJob(BaseJobParam param);

    /**
     * executeOnceJob
     *
     * @param param
     * @return
     */
    ReturnT<String> executeOnceJob(BaseJobParam param);

    /**
     * nextJobTime
     *
     * @param param
     * @return
     */
    ReturnT<String> nextJobTime(BaseJobParam param);
}
